This invention relates to determining an end point of a generic routing encapsulation (xe2x80x9cGRExe2x80x9d) tunnel.
GRE is a protocol that enables the encapsulation of an arbitrary network layer protocol (the payload protocol) by another arbitrary network layer protocol (the delivery protocol). GRE tunnels are virtual tunnels that are created on an intermediary network and that are used to transmit GRE-encapsulated data packets from a first network to a second network. GRE tunnels are often used to create a virtual private network (xe2x80x9cVPNxe2x80x9d) by connecting two remote local area networks (xe2x80x9cLANxe2x80x9d) via the Internet.
At one end of a GRE tunnel, a router receives a payload packet from the first network, and encapsulates the payload packet so that it conforms to the delivery protocol of the intermediary network. The payload packet may be encapsulated in another packet or an Ethernet frame, for example. The encapsulated packet is transmitted through the intermediary network to the other end of the GRE tunnel. At that end, a router de-encapsulates the packet, and transmits the payload packet to the second network.
Heretofore, GRE tunnels were xe2x80x9cstaticxe2x80x9d, meaning that the tunnel end points had to be configured, and updated, manually. For example, an address of a router at one tunnel end point may change, thereby making it necessary to provide the new address to other routers that use the tunnel end points. In a static GRE tunnel, a network administrator, using software such as Bay Command Console (xe2x80x9cBCCxe2x80x9d) or Site Manager, enters this new information into each end point router manually. Manual reconfiguration is time-consuming and inefficient.
In one aspect, the invention determines an end point of a GRE tunnel (e.g., an address of an end point device) by receiving a data packet at the device, identifying the data packet as a GRE packet, and determining an address of the end point of the GRE tunnel using the data packet. The address of the end point is stored in a table on the device. By determining an end point address using a GRE packet, the invention is able to provide routing updates automatically.
This aspect may include one or more of the following features and/or functions. Identifying comprises searching a header of the data packet for a value indicative of a GRE packet. The address of the end point comprises a logical address of the end point. The device is a router, and the data packet is a routing update packet.
Another aspect of the invention is directed to obtaining an end point address of a GRE tunnel dynamically. In this aspect, a data packet is forwarded through the GRE tunnel to a remote GRE tunnel end point device. In response, a reply is received from the remote GRE tunnel end point device, which includes a physical address of the remote GRE tunnel end point device.
This aspect provides a way for one device to obtain a physical address of a device at a remote tunnel end point. Thus, if end points have been added to, or removed from, the GRE tunnel, the invention can determine this dynamically and route packets accordingly.
The foregoing aspect may include one or more of the following features and/or functions.
The aspect of the invention may be performed by a local GRE tunnel end point device, and a table on the local GRE tunnel end point device may be updated to include the physical address of the remote GRE tunnel end point device. The reply includes a unicast address of the remote GRE tunnel end point device. The data packet comprises an address resolution protocol packet (ARP), and the ARP packet includes a logical address of the remote GRE tunnel end point device. The reply comprises a GRE-encapsulated data packet with the physical address of the remote GRE tunnel end point device as a payload.
This summary has been provided so that the nature of the invention can be understood quickly. A detailed description of illustrative embodiments of the invention is set forth below.